package com.irdstudio.apicenter.frame.core.jdbc.tablemodel;

import com.irdstudio.apicenter.frame.core.jdbc.JdbcDBException;
import com.irdstudio.apicenter.frame.core.jdbc.container.DataList;
import com.irdstudio.apicenter.frame.core.jdbc.container.PageInfo;

/**
 * 数据库表模型基础操作DAO接口 相应数据库本地化的基础DAO操作需实现此类
 * 
 * @author zs.ligm
 * @version 1.0
 * @date 2015-07-20
 */
public interface ITableModelDAO {

	/**
	 * 以分页形式查询(不同的数据库的分页有不同的实现)
	 * 
	 * @param sql
	 * @param pageInfo
	 * @param params
	 * @return
	 * @throws JdbcDBException
	 */
	public DataList queryList(String sql, PageInfo pageInfo, Object[] params)
			throws JdbcDBException;

	/**
	 * 根据起始行及每页记录数得到分页SQL
	 * 
	 * @param begin
	 * @param pageSize
	 * @return
	 */
	public String getNativePageSql(String sql, int beginIdx, int pageSize);

}
